package com.gzx.plugin.tjzy.modular.call.receipt.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gzx.plugin.tjzy.modular.call.receipt.bo.GzxHtCallReceiptQueryBo;
import com.gzx.plugin.tjzy.modular.call.receipt.vo.GzxHtCallReceiptBusinessVo;
import com.gzx.plugin.tjzy.modular.call.receipt.vo.GzxHtCallReportVo;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.kafka.clients.consumer.ConsumerRecord;

import java.util.List;

/**
 * @author zjt
 * @description
 * @since 2025/3/28 18:30
 */
public interface GzxHtCallReceiptBusinessService {

    /**
     * 分页查询话单记录
     *
     * @param htCallReceiptQueryBo
     * @return
     */
    Page<GzxHtCallReceiptBusinessVo> pageList(GzxHtCallReceiptQueryBo htCallReceiptQueryBo);

    /**
     * 获取坐席工作报表
     *
     * @param htCallReceiptQueryBo
     * @return
     */
    Page<GzxHtCallReportVo> pageCallReport(GzxHtCallReceiptQueryBo htCallReceiptQueryBo);

    /**
     * 导出数据
     *
     * @param htCallReceiptQueryBo
     * @param response
     * @return
     */
    void exportCallReport(GzxHtCallReceiptQueryBo htCallReceiptQueryBo, HttpServletResponse response);

    /**
     * 获取坐席工作报表
     *
     * @param htCallReceiptQueryBo
     * @return
     */
    Page<GzxHtCallReportVo> pageCallReportOld(GzxHtCallReceiptQueryBo htCallReceiptQueryBo);

    /**
     * 导出数据
     *
     * @param htCallReceiptQueryBo
     * @param response
     * @return
     */
    void exportCallReportOld(GzxHtCallReceiptQueryBo htCallReceiptQueryBo, HttpServletResponse response);

    /**
     * 批量保存话单业务表
     *
     * @param consumerRecordList
     */
    void saveBatchBusiness(List<ConsumerRecord<String, String>> consumerRecordList);

    /**
     * 生成作业记录
     */
    void generateWorkRecord();

    //定时任务发送邮件
    void sendEmail(List<String> toAddress);
}
